package org.zch.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.zch.common.ApiResult;
import org.zch.service.AdminService;

/**
 * 管理员控制层
 *
 * @author 赵昌虎
 */
@RestController
@RequestMapping("/adminData")
@Api(tags = "管理员")
public class AdminController {

    @Autowired
    private AdminService adminService;

    /**
     * 获取管理员
     */
    @ApiOperation(value = "获取管理员", notes = "获取管理员")
    @GetMapping("/findAll")
    public ApiResult findAll() {
        return ApiResult.ok(adminService.findAll());
    }

    /**
     * 新增管理员
     *
     * @param name     管理员昵称
     * @param password 管理员密码
     * @return 变更条数
     */
    @ApiOperation(value = "新增管理员", notes = "新增管理员")
    @PostMapping("/addAdmin")
    public ApiResult addAdmin(@RequestParam("name") String name, @RequestParam("password") String password) {
        return ApiResult.ok(adminService.addAdmin(name, password));
    }

    /**
     * 修改管理员密码
     *
     * @param password 修改后的密码
     * @param name     被修改的管理员
     * @return 变更条数
     */
    @ApiOperation(value = "修改管理员密码", notes = "修改管理员密码")
    @PostMapping("/upAdminPassWord")
    public ApiResult upAdminPassWord(@RequestParam("password") String password, @RequestParam("name") String name) {
        return ApiResult.ok(adminService.upAdminPassWord(password, name));
    }

    /**
     * 删除管理员
     *
     * @param name 被删除的管理员
     * @return 变更条数
     */
    @ApiOperation(value = "删除管理员", notes = "删除管理员")
    @PostMapping("/deleteAdmin")
    public ApiResult deleteAdmin(@RequestParam("name") String name) {
        return ApiResult.ok(adminService.deleteAdmin(name));
    }

    /**
     * 管理员登录
     *
     * @param name     用户名
     * @param password 密码
     * @return 登录提示信息
     */
    @ApiOperation(value = "登录", notes = "登录")
    @PostMapping("/loginAdmin")
    public ApiResult loginAdmin(@RequestParam("name") String name, @RequestParam("password") String password) {
        return ApiResult.ok(adminService.loginAdmin(name, password));
    }

    /**
     * 更新上次登录时间
     *
     * @param name 用户名
     * @return 变更条数
     */
    @ApiOperation(value = "更新上次登录时间", notes = "更新上次登录时间")
    @PostMapping("/upLastTime")
    public ApiResult upLastTime(@RequestParam("name") String name) {
        return ApiResult.ok(adminService.upLastTime(name));
    }

    /**
     * 获取管理员信息
     *
     * @param name 用户名
     * @return 管理员信息
     */
    @ApiOperation(value = "根据昵称获取管理员数据", notes = "根据昵称获取管理员数据")
    @PostMapping("/getAdmin")
    public ApiResult getAdmin(@RequestParam("name") String name) {
        return ApiResult.ok(adminService.getAdmin(name));
    }

}
